home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat3 / il / ilDisplay.z / ilDisplay
Encoding:
Text File  |  2002-10-03  |  86.9 KB  |  1,914 lines

  1.  
  2.  
  3.  
  4. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      iiiillllDDDDiiiissssppppllllaaaayyyy - displays multiple images in an X window
  10.  
  11.  
  12. IIIINNNNHHHHEEEERRRRIIIITTTTSSSS FFFFRRRROOOOMMMM
  13.      This is a base class with no inheritance.
  14.  
  15.  
  16. HHHHEEEEAAAADDDDEEEERRRR FFFFIIIILLLLEEEE
  17.      #include <il/ilDisplay.h>
  18.  
  19.  
  20. CCCCLLLLAAAASSSSSSSS DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  21.      ilDisplay manages the display of multiple ilImages in an X window. An
  22.      ilImage of any size, color model, or orientation can be displayed. In
  23.      addition, any combination of ilImage can be displayed.  OOOOppppeeeennnnGGGGLLLL is used to
  24.      render the images if supported by the visual associated with the X
  25.      window, otherwise X is used. Multiple images are managed as a stack and
  26.      only the exposed area of each image is painted for optimal performance.
  27.  
  28.      AAAAddddddddiiiinnnngggg IIIImmmmaaaaggggeeeessss
  29.  
  30.      Any iiiillllIIIImmmmaaaaggggeeee can be added to the display by using the aaaaddddddddVVVViiiieeeewwww(((()))) member
  31.      function. ilDisplay creates an iiiillllVVVViiiieeeewwww for the image and puts it into a
  32.      view stack. By default, views are put on top of the stack. However, an
  33.      index can be specified or the mode can be used to control where the view
  34.      is inserted in the stack. Views are displayed based on their stacking
  35.      order. Therefore the view on top of the stack is unobscured and other
  36.      views in the stack may be obscured.  Member functions are provided for
  37.      manipulating the view stack such as push, pop, swap and delete.
  38.  
  39.      An iiiillllVVVViiiieeeewwww pointer is returned by aaaaddddddddVVVViiiieeeewwww() and can be used to manipulate
  40.      the view. For example the view can be repositioned and resized. See
  41.      ilView for more information. The pointer to an ilView can be found in
  42.      several ways using the image or index of the view or by specifying an xy
  43.      location.  When finding a view by xy location, a pointer to the topmost
  44.      view at that location is returned. Note that all views in the view stack
  45.      are deleted when ilDisplay is deleted.
  46.  
  47.      DDDDiiiissssppppllllaaaayyyy OOOOppppeeeerrrraaaattttoooorrrrssss
  48.  
  49.      ilDisplay provides several functions or display operators to manipulate
  50.      views within the display window. Display operators are used to do such
  51.      things as move the view within the display, change the size of the view
  52.      or moved the image within the view. These display operators can be
  53.      applied to one or more views in the view stack.  Typical arguments passed
  54.      to a display operator include an _x_y coordinate pair, a pointer to a _v_i_e_w,
  55.      and a _m_o_d_e.
  56.  
  57.      An _i_l_V_i_e_w* is passed to a display operator to specify which view to
  58.      operate on. If NULL is specified, all views in the stack are operated on.
  59.      However, a view is unaffected if its nop (no-operation) flag is set. The
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  71.  
  72.  
  73.  
  74.      function sssseeeettttNNNNoooopppp(((()))) can be used to set the nop flag on a single view or all
  75.      views in the stack.
  76.  
  77.      The _m_o_d_e parameter passed to display operators is comprised of one or
  78.      more bit fields. It is passed as an iiiinnnntttt value to allow the bit fields to
  79.      be combined using a bitwise OR. These bit fields are defined as
  80.      enumerated values in iiiillll////iiiillllDDDDiiiissssppppllllaaaayyyyDDDDeeeeffffssss....hhhh. There are several types of modes
  81.      defined, including: ilDefer to defer painting, ilClip to prevent moving
  82.      beyond the edge of the image, ilNoSwap to prevent swapping back/front
  83.      buffers, and operator-specific flags such as ilRightEdge for the wipe
  84.      operator and coordinate interpretation.
  85.  
  86.      The _x, _y coordinates passed to a display operator can be interpreted as
  87.      absolute values, change from current view configuration, or as relative
  88.      to the values initialized by sssseeeettttMMMMoooouuuusssseeee(((()))).  Coordinate interpretation is
  89.      specified by the following flags in _m_o_d_e:
  90.           _i_l_R_e_l_V_a_l    Interpreted relative to the starting _x_y position
  91.                       established with sssseeeettttMMMMoooouuuusssseeee(). The difference between the
  92.                       specified _x_y parameters and the starting _x_y location is
  93.                       used. The starting _x_y location is then updated. Useful
  94.                       for interactive manipulation.
  95.  
  96.           _i_l_O_l_d_R_e_l    Same as _i_l_R_e_l_V_a_l except that the starting _x,_y location
  97.                       is not updated. This is useful when doing several
  98.                       operations based on the same _x,_y coordinates.
  99.  
  100.           _i_l_D_e_l_V_a_l    Interpreted as changes (delta) to the current view
  101.                       configuration.
  102.  
  103.           _i_l_A_b_s_V_a_l    Interpreted as absolute values relative to the ilDisplay
  104.                       origin (upper-left).
  105.  
  106. CCCCLLLLAAAASSSSSSSS MMMMEEEEMMMMBBBBEEEERRRR FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN SSSSUUUUMMMMMMMMAAAARRRRYYYY
  107.      CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrr
  108.  
  109.           ilDisplay(Display* display, Window parentWin, int mode = ilDefault)
  110.           ilDisplay(Display* display, int width, int height,
  111.                     int attr=ilVisDoubleBuffer,
  112.                     int minComponentSize=8, int maxComponentSize=0,
  113.                     int mode = ilDefault,
  114.                     long eventMask = ExposureMask|KeyPressMask|
  115.                                      PointerMotionMask|PointerMotionHintMask|
  116.                                      ButtonPressMask|ButtonReleaseMask|
  117.                                      StructureNotifyMask)
  118.  
  119.      SSSSyyyynnnncccchhhhrrrroooonnnniiiizzzzaaaattttiiiioooonnnn aaaannnndddd aaaabbbboooorrrrttttiiiinnnngggg
  120.  
  121.           void syncPaint()
  122.           void flush()
  123.           void abort()
  124.           void enableAutoAbort(int enable=TRUE)
  125.  
  126.  
  127.                                                                         PPPPaaaaggggeeee 2222
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  135.  
  136.  
  137.  
  138.           int isAutoAbortEnabled()
  139.           void enableQueueing(int enable=TRUE)
  140.           int isQueueingEnabled()
  141.  
  142.      XXXX WWWWiiiinnnnddddoooowwww aaaacccccccceeeessssssss aaaannnndddd ccccoooonnnnttttrrrroooollll
  143.  
  144.           void updateWindow()
  145.           void setWindow(Window win, int mode = ilDefault)
  146.           ilXWindowImg* getXWindowImg()
  147.           GLXContext getGLXContext()
  148.           Window getWindow()
  149.           Display* getDisplay()
  150.           Display* getILDisplay()
  151.           void calcWindowSize(int& width, int& height)
  152.           void destroyNotify()
  153.  
  154.      CCCCoooonnnnttttrrrroooolllllllliiiinnnngggg ddddiiiissssppppllllaaaayyyy mmmmooooddddeeeessss
  155.  
  156.           void setMode(int mode = 0)
  157.           void enableFrontRedraw(int enable)
  158.           int isFrontRedrawEnabled()
  159.  
  160.      RRRReeeennnnddddeeeerrrriiiinnnngggg ccccaaaallllllllbbbbaaaacccckkkkssss
  161.  
  162.           void setCallback(ilCallback* prepare, ilCallback* render,
  163.                            ilCallback* finish = NULL)
  164.           void getCallback(ilCallback*& prepare, ilCallback*& render,
  165.                            ilCallback*& finish)
  166.           void enableCallback(int enable = TRUE)
  167.           int isCallbackEnabled()
  168.  
  169.      TTTTiiiilllleeee mmmmaaaappppppppiiiinnnngggg
  170.  
  171.           void mapTile(iflOrientation fromOrientation, iflTile2Dint& tile,
  172.                        iflOrientation toOrientation=iflOrientation(0))
  173.           void mapTile(iflOrientation fromOrientation, iflTile2Dfloat& tile,
  174.                        iflOrientation toOrientation=iflOrientation(0))
  175.           void mapXY(iflOrientation fromOrientation, int& x, int& y,
  176.                      iflOrientation toOrientation=iflOrientation(0))
  177.           void mapXY(iflOrientation fromOrientation, float& x, float& y,
  178.                      iflOrientation toOrientation=iflOrientation(0))
  179.  
  180.      VVVViiiissssiiiibbbblllleeee aaaarrrreeeeaaaa ccccoooonnnnttttrrrroooollll
  181.  
  182.           void setVisibleArea(int x = 0, int y = 0, int nx = 0,
  183.                               int ny = 0)
  184.           void getVisibleArea(int& x, int& y, int& nx, int& ny)
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.                                                                         PPPPaaaaggggeeee 3333
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  201.  
  202.  
  203.  
  204.      AAAAttttttttrrrriiiibbbbuuuutttteeee ggggeeeetttt aaaannnndddd sssseeeetttt
  205.  
  206.           void getPos(int& x, int& y)
  207.           void getSize(int& x, int& y)
  208.           int isRgb()
  209.           int isDoubleBuffer()
  210.           int isDefer(ilView* view = NULL)
  211.           void setDefer(int def, ilView* view = NULL)
  212.           int isStereo()
  213.           int getMargin()
  214.           void setMargin(int margin)
  215.           float getRoamLimit()
  216.           void setRoamLimit(float maxRoamDel = 0.0)
  217.           void getRoamRate(float& x, float& y)
  218.           void getBackground(float& red, float& green, float& blue)
  219.           void setBackground(float red, float green, float blue)
  220.           iflColorModel getColorModel()
  221.           void setColormap(iflColormap& cmap)
  222.           ilStatus getColormap(iflColormap& cmap)
  223.           ilStatus getStatus()
  224.           void setStatus(ilStatus stat)
  225.           void setBackgroundDirty()
  226.  
  227.      VVVViiiieeeewwww mmmmaaaannnniiiippppuuuullllaaaattttiiiioooonnnn
  228.  
  229.           ilView* addView(ilImage* img, int index, int mode)
  230.           ilView* addView(ilImage* img, int mode = ilCenter)
  231.           ilStereoView* addStereoView(ilImage* imgL, ilImage* imgR,
  232.                                       int index, int mode)
  233.           ilStereoView* addStereoView(ilImage* imgL, ilImage* imgR,
  234.                                       int mode = ilCenter)
  235.           ilStereoView* addStereoView(ilImage* zImg, int zLeft,
  236.                                       int zRight, int index, int mode)
  237.           ilStereoView* addStereoView(ilImage* zImg, int zLeft = 0,
  238.                                       int zRight = 1, int mode = ilCenter)
  239.           ilView* addView(ilView* view, int index = 0, int mode = ilCenter)
  240.           void deleteView(ilView* view)
  241.           void deleteView(int index = 0)
  242.           void addViewChangeCallback(ilCallback* cb, int autoDelete=FALSE)
  243.           ilStatus removeViewChangeCallback(ilCallback* cb)
  244.           void push(ilView* view = NULL, int count = 0)
  245.           void pop(ilView* view = NULL, int count = 0)
  246.           void swap(ilView* view1, ilView* view2)
  247.           ilView* findView(int x, int y, int mode = ilDspCoord)
  248.           ilView* getView(int index = 0)
  249.           ilView* getView(ilImage* img)
  250.           int getViewIndex(ilView* view)
  251.           int getViewIndex(ilImage* img)
  252.           int getNumViews()
  253.           ilView* getLoc(float x, float y, float& ix, float& iy,
  254.                          int mode = ilLocIn)
  255.           ilView* setLoc(float ix, float iy, float x, float y,
  256.  
  257.  
  258.  
  259.                                                                         PPPPaaaaggggeeee 4444
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  267.  
  268.  
  269.  
  270.                          int mode = ilLocIn)
  271.           ilView* getPixel(int x, int y, iflPixel& pix)
  272.           ilView* setPixel(int x, int y, iflPixel& pix)
  273.           int isNop(ilView* view = NULL)
  274.           void setNop(int noOp, ilView* view = NULL)
  275.           void select(ilView* view = NULL)
  276.           void unselect(ilView* view = NULL)
  277.           int isSelected(ilView* view)
  278.           void setBorders(int enable, int mode = ilDefault)
  279.           void setBorderStyle(int style = ilViewBdrSolidLines)
  280.           void setBorderColor(float red, float green, float blue)
  281.           void setBorderWidth(int width)
  282.  
  283.      DDDDiiiissssppppllllaaaayyyy ooooppppeeeerrrraaaattttoooorrrr ssssuuuuppppppppoooorrrrtttt
  284.  
  285.           void setMouse(int x, int y, int mode = 0)
  286.           void getMouse(int& x, int& y)
  287.           void getMouse(int& x, int& y, iflOrientation orientation)
  288.           int findEdge(int x, int y, int margin = -1, int mode = ilDspCoord)
  289.  
  290.      DDDDiiiissssppppllllaaaayyyy ooooppppeeeerrrraaaattttoooorrrrssss
  291.  
  292.           void display(ilView* view = NULL, int vMode = ilCenter,
  293.                        int iMode = ilCenter)
  294.           void redraw(int x, int y, int nx, int ny,
  295.                       iflOrientation orientation = iflUpperLeftOrigin,
  296.                       int mode = ilDefault)
  297.           void redraw(int mode = ilDefault)
  298.           void paint(int x, int y, int nx, int ny,
  299.                      iflOrientation orientation = iflUpperLeftOrigin,
  300.                      ilView* view = NULL, int mode = 0)
  301.           void paint(ilView* view = NULL, int mode = 0)
  302.           void qPaint(ilMpNode* parent, int x, int y, int nx, int ny,
  303.                       iflOrientation orientation = iflUpperLeftOrigin,
  304.                       ilView* view = NULL, int mode = 0,
  305.                       ilMpManager** pMgr = NULL)
  306.           void qPaint(ilMpNode* parent, ilView* view = NULL, int mode = 0,
  307.                       ilMpManager** pMgr = NULL)
  308.           void moveView(int x, int y, ilView* view = NULL, int mode = ilRelVal)
  309.           void moveImg(float x, float y, ilView* view = NULL,
  310.                        int mode = ilRelVal)
  311.           void moveImgIdx(float x, float y, ilView* view,
  312.                        int idx, int mode)
  313.           void wipe(int x, int y, ilView* view = NULL, int mode = ilRelVal)
  314.           void wipeSplit(int x, int y, int mode = ilRelVal)
  315.           void wipeSize(int x, int y, ilView* view = NULL,
  316.                         int mode = ilDelVal|ilTopRight)
  317.           void split(int mode = ilAbsSplit|ilRowSplit|ilColSplit)
  318.           void alignImg(ilView* view = NULL, int mode = ilCenter)
  319.           void alignView(ilView* view = NULL, int mode = ilCenter,
  320.                          ilView* rView = NULL)
  321.           void update(int x = 0, int y = 0, int nx = 0, int ny = 0,
  322.  
  323.  
  324.  
  325.                                                                         PPPPaaaaggggeeee 5555
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  333.  
  334.  
  335.  
  336.                       float imgX = 0, float imgY = 0, ilView* view = NULL,
  337.                       int mode = ilDelVal)
  338.           ilStatus save(ilImage* img, int x = 0, int y = 0, int mode = 0)
  339.  
  340.  
  341.  
  342. FFFFUUUUNNNNCCCCTTTTIIIIOOOONNNN DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNNSSSS
  343.      iiiillllDDDDiiiissssppppllllaaaayyyy(((())))
  344.  
  345.           ilDisplay(Display* display, Window parentWin, int mode = ilDefault)
  346.           ilDisplay(Display* display, int width, int height,
  347.                     int attr=ilVisDoubleBuffer,
  348.                     int minComponentSize=8, int maxComponentSize=0,
  349.                     int mode = ilDefault,
  350.                     long eventMask = ExposureMask|KeyPressMask|
  351.                                      PointerMotionMask|PointerMotionHintMask|
  352.                                      ButtonPressMask|ButtonReleaseMask|
  353.                                      StructureNotifyMask)
  354.  
  355.  
  356.           Both versions of the constructor create an ilDisplay object to
  357.           manage views of images within an X window. The _m_o_d_e parameter is
  358.           used to specify the view mode when adding ilViews objects with
  359.           aaaaddddddddVVVViiiieeeewwww().  For example, iiiillllDDDDeeeeffffeeeerrrr could be used to add views without
  360.           painting each one as it is added to the display.
  361.  
  362.           Since OpenGL and X rendering can be mixed, the render mode is
  363.           determined automatically. If the X visual associated with the window
  364.           supports OpenGL rendering then OpenGL rendering will be used.
  365.           Otherwise X rendering will be used. Note that hardware acceleration
  366.           only occurs during OpenGL rendering.
  367.  
  368.           The second version of the constructor creates an X window as
  369.           specified by the various parameters. The created window will be
  370.           _w_i_d_t_h wide, _h_e_i_g_h_t high with the attributes specified by _a_t_t_r,
  371.           _m_i_n_C_o_m_p_o_n_e_n_t_S_i_z_e and _m_a_x_C_o_m_p_o_n_e_n_t_S_i_z_e for the visual class.  See
  372.           iiiillllXXXXWWWWiiiinnnnddddoooowwwwIIIImmmmgggg for more information. In addition, it will select the X
  373.           events passed in _e_v_e_n_t_M_a_s_k.
  374.  
  375.           A background view is created and is painted by default. However, if
  376.           ilDefer is passed in _m_o_d_e, painting will be deferred.  Also, an RGB
  377.           colormap will be loaded if needed. However, an application can load
  378.           a colormap or use the default colormap by passing ilDefaultCmap in
  379.           _m_o_d_e. This will cause ilDisplay to not load a colormap.
  380.  
  381.      aaaabbbboooorrrrtttt(((())))
  382.  
  383.           void abort()
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.                                                                         PPPPaaaaggggeeee 6666
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  399.  
  400.  
  401.  
  402.           This method aborts any queued paint requests.  It works in
  403.           conjunction with the eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg() method.
  404.  
  405.      aaaaddddddddSSSStttteeeerrrreeeeooooVVVViiiieeeewwww(((())))
  406.  
  407.           ilStereoView* addStereoView(ilImage* imgL, ilImage* imgR,
  408.                                       int index, int mode)
  409.           ilStereoView* addStereoView(ilImage* imgL, ilImage* imgR,
  410.                                       int mode = ilCenter)
  411.           ilStereoView* addStereoView(ilImage* zImg, int zLeft = 0,
  412.                                       int zRight = 1, int mode = ilCenter)
  413.           ilStereoView* addStereoView(ilImage* zImg, int zLeft,
  414.                                       int zRight, int index, int mode)
  415.  
  416.  
  417.           These methods allow a pair of ilImages to be specified as the left
  418.           image and the right image of a stereo pair. In addition, a stereo
  419.           pair may be stored in a single image using the Z dimension. In this
  420.           case, the image is specified as _z_I_m_g. The Z index to the left image
  421.           is specified as _z_L_e_f_t and the Z index to the right image is
  422.           specified as _z_R_i_g_h_t. By default, zLeft is 0 and zRight is 1. The
  423.           advantage of this approach, is that a single IL chain can be used to
  424.           process the stereo pair, rather than having a chain to process each
  425.           image.
  426.  
  427.      aaaaddddddddVVVViiiieeeewwww(((())))
  428.  
  429.           ilView* addView(ilImage* img, int index, int mode)
  430.           ilView* addView(ilImage* img, int mode = ilCenter)
  431.           ilView* addView(ilView* view, int index = 0, int mode = ilCenter)
  432.  
  433.  
  434.           Creates an ilView for the image specified by, _i_m_g, and adds it to
  435.           the view stack at the index specified by, _i_d_x. By default, the view
  436.           is added to the top of the stack. If _i_d_x equals _i_l_L_a_s_t, the view is
  437.           added to the bottom of the stack. The mode parameter controls the
  438.           creation and position of the ilView. By default, the ilView is the
  439.           size of the image. However, if _i_l_C_l_i_p is passed in _m_o_d_e, then the
  440.           ilView will be clipped to the size of the display window. By
  441.           default, the view is painted after it is added to the stack.
  442.           However, if _i_l_D_e_f_e_r is passed, then painting is deferred. Also, an
  443.           alignment mode such as _i_l_C_e_n_t_e_r may be passed to control how the
  444.           image is aligned within the view and how the view is aligned within
  445.           the display window. Center alignment is used by default.
  446.  
  447.           Several versions of aaaaddddddddVVVViiiieeeewwww() are provided for convenience. The
  448.           version that takes an index, allows the position in the view stack
  449.           to be specified. Often however, putting the image on top of the
  450.           stack is acceptable and only the image and mode need to be
  451.           specified. Therefore, a second version is provided that only
  452.           requires an image and a mode to be specified.
  453.  
  454.  
  455.  
  456.  
  457.                                                                         PPPPaaaaggggeeee 7777
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  465.  
  466.  
  467.  
  468.      aaaaddddddddVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  469.  
  470.           void addViewChangeCallback(ilCallback* cb, int autoDelete=FALSE)
  471.  
  472.  
  473.           This method adds a callback that will be triggered whenever a view
  474.           is added to or deleted from this object.  Either
  475.           ilViewChangeMethodCB or ilViewChangeFunctionCB can used with this
  476.           method. The callback method or function will have the prototype:
  477.  
  478.               func(UserArgType userArg, ilViewChangeArg* callerArg)
  479.  
  480.  
  481.           To define and use a view change callback to a member function you
  482.           might do something like:
  483.  
  484.               ...
  485.               ilStatus Bar::change(Foo*, ilViewChangeArg*) { ... }
  486.               ...
  487.               typedef ilViewChangeMethodCB<Bar,Foo*> ViewChangeCallback;
  488.  
  489.               Bar bar;
  490.               Foo foo;
  491.               ViewChangeCallback changeCb(&bar, Bar::change, &foo);
  492.  
  493.               disp->addViewChangeCallback(&changeCb);
  494.  
  495.  
  496.           The passed ilViewChangeArg contains two members:
  497.  
  498.           _r_e_a_s_o_n    The reason for this callback: either _i_l_V_i_e_w_A_d_d_e_d or
  499.                     _i_l_V_i_e_w_D_e_l_e_t_e_d.
  500.  
  501.           _v_i_e_w      The view being added or the view about to be deleted.
  502.  
  503.      aaaalllliiiiggggnnnnIIIImmmmgggg(((())))
  504.  
  505.           void alignImg(ilView* view = NULL, int mode = ilCenter)
  506.  
  507.  
  508.           Aligns the image in the specified view based on _m_o_d_e. If NULL is
  509.           passed, then the image in all views in the view stack are aligned
  510.           (expect those with nop flag set). For example, if ilCenter is
  511.           specified, the images are centered within the view.  Similarly, if
  512.           ilBottomLeft is specified, the lower left corner of the image is
  513.           aligned to the lower left corner of the view. See _i_l/_i_l_D_i_s_p_l_a_y_D_e_f._h
  514.           for a complete list of modes.
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.                                                                         PPPPaaaaggggeeee 8888
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  531.  
  532.  
  533.  
  534.      aaaalllliiiiggggnnnnVVVViiiieeeewwww(((())))
  535.  
  536.           void alignView(ilView* view = NULL, int mode = ilCenter,
  537.                          ilView* rView = NULL)
  538.  
  539.  
  540.           Aligns the specified view to the reference view specified in _r_V_i_e_w.
  541.           If NULL is passed then all views are aligned (except those with nop
  542.           flag set). The two views are aligned based on bit flags passed in
  543.           _m_o_d_e. For example, it ilCenter is specified, the center of the view
  544.           is aligned to the center of the reference view. Similarly, if
  545.           ilTopRight is specified, the upper right corner of the view is
  546.           aligned to the upper right corner of the reference view. If NULL is
  547.           passed in rView, the background view in ilDisplay is used. See
  548.           _i_l/_i_l_D_i_s_p_l_a_y_D_e_f._h for a complete list of modes.
  549.  
  550.      ccccaaaallllccccWWWWiiiinnnnddddoooowwwwSSSSiiiizzzzeeee(((())))
  551.  
  552.           void calcWindowSize(int& width, int& height)
  553.  
  554.  
  555.           This method computes a window size that won't clip any of the images
  556.           in the current set of views, this size is clipped to the size of the
  557.           screen.
  558.  
  559.      ddddeeeelllleeeetttteeeeVVVViiiieeeewwww(((())))
  560.  
  561.           void deleteView(ilView* view)
  562.           void deleteView(int index = 0)
  563.  
  564.  
  565.           Removes the specified view from the view stack and deletes the
  566.           ilView.  The display is then repainted.
  567.  
  568.      ddddeeeessssttttrrrrooooyyyyNNNNoooottttiiiiffffyyyy(((())))
  569.  
  570.           void destroyNotify()
  571.  
  572.  
  573.           This method is intended to be called when the X window used by this
  574.           object has been destroyed, typically when a DestroyNotify X event is
  575.           handled.
  576.  
  577.      ddddiiiissssppppllllaaaayyyy(((())))
  578.  
  579.           void display(ilView* view = NULL, int vMode =ilCenter,
  580.                        int iMode =ilCenter)
  581.  
  582.  
  583.           This function resizes, aligns, and paints the specified view. If
  584.           NULL is passed, then all views are operated on (except those with
  585.           nop flag set). If ilDefer is specified, then painting is deferred.
  586.  
  587.  
  588.  
  589.                                                                         PPPPaaaaggggeeee 9999
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  597.  
  598.  
  599.  
  600.           The view is resized to the size of the image. However, if ilClip is
  601.           specified, the view is clipped to the size of the display. The view
  602.           is aligned as specified in _v_M_o_d_e, and the image mapped to the view
  603.           is aligned as specified in _i_M_o_d_e.
  604.  
  605.      eeeennnnaaaabbbblllleeeeAAAAuuuuttttooooAAAAbbbboooorrrrtttt(((())))
  606.  
  607.           void enableAutoAbort(int enable=TRUE)
  608.  
  609.  
  610.           This method enables automatic aborting of queued requests; when this
  611.           mode is turned on any new painting operations will automatically
  612.           cancel paint operations in progress. This mode only makes sense if
  613.           queueing is enabled (see eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg()).
  614.  
  615.      eeeennnnaaaabbbblllleeeeCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  616.  
  617.           void enableCallback(int enable = TRUE)
  618.  
  619.  
  620.           This member function enables (_T_r_u_e) or disables (_F_a_l_s_e) the post-
  621.           render callback setup with sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(). Note that the callback
  622.           must be set and enabled to be operable.
  623.  
  624.      eeeennnnaaaabbbblllleeeeFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwww(((())))
  625.  
  626.           void enableFrontRedraw(int enable)
  627.  
  628.  
  629.           This member function enables or disables drawing to the front buffer
  630.           when rrrreeeeddddrrrraaaawwww() is called. This allows better visual feedback when in
  631.           double buffer mode.  If _T_r_u_e is passed then front redraw is enabled.
  632.           Otherwise, it is disabled.
  633.  
  634.      eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg(((())))
  635.  
  636.           void enableQueueing(int enable=TRUE)
  637.  
  638.  
  639.           This method controls whether queued painting is actually allowed,
  640.           the default mode is that queued painting will not be done.  When the
  641.           mode is enabled, call to various display operation (like mmmmoooovvvveeeeIIIImmmmgggg())
  642.           will return before the rendering is completed.  When another
  643.           operations is requested it will be started before waiting for the
  644.           last operation to complete to allow overlapped prefetching of data.
  645.           This mode is currently only supported on MP machines.
  646.  
  647.           Completion of the queued operation can be ensured by calling the
  648.           ssssyyyynnnnccccPPPPaaaaiiiinnnntttt() method.  Queued operations can be aborted with the
  649.           aaaabbbboooorrrrtttt() method.
  650.  
  651.  
  652.  
  653.  
  654.  
  655.                                                                        PPPPaaaaggggeeee 11110000
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  663.  
  664.  
  665.  
  666.      ffffiiiinnnnddddEEEEddddggggeeee(((())))
  667.  
  668.           int findEdge(int x, int y, int margin = -1, int mode = ilDspCoord)
  669.  
  670.  
  671.           Returns the edge or edges within _m_a_r_g_i_n pixels of _x and _y.  The view
  672.           stack is searched from top to bottom so that edges of the top view
  673.           are returned. However, ilNoEdge is returned if no edge is found and
  674.           ilNoView is returned if there is no view at the location specified
  675.           by _x and _y.
  676.  
  677.      ffffiiiinnnnddddVVVViiiieeeewwww(((())))
  678.  
  679.           ilView* findView(int x, int y, int mode = ilDspCoord)
  680.  
  681.  
  682.           Returns a pointer to the top-most ilView found at location (_x,_y)
  683.           within the display. If there is no view at (x,y), NULL is returned.
  684.           If ilDspCoord is passed in mode (default), then the (x,y)
  685.           coordinates are interpreted relative to the display window. If
  686.           ilScrCoord is passed in mode, then the (x,y) coordinates are
  687.           interpreted relative to the screen.
  688.  
  689.      fffflllluuuusssshhhh(((())))
  690.  
  691.           void flush()
  692.  
  693.  
  694.           Flushes graphics commands that may be buffered. Usually, it is not
  695.           necessary to call flush in interactive applications.
  696.  
  697.      ggggeeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnndddd(((())))
  698.  
  699.           void getBackground(float& red, float& green, float& blue)
  700.  
  701.  
  702.           Returns the current background color in _r_e_d, _g_r_e_e_n and _b_l_u_e.  See
  703.           setBackground()
  704.  
  705.      ggggeeeettttCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  706.  
  707.           void getCallback(ilCallback*& prepare, ilCallback*& render,
  708.                            ilCallback*& finish)
  709.  
  710.  
  711.           Returns pointers to the _p_r_e_p_a_r_e callback, _r_e_n_d_e_r callback and _f_i_n_i_s_h
  712.           callback in the repective parameters. These callbacks were
  713.           previousely set with sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(). See iiiillllVVVViiiieeeewwww and iiiillllVVVViiiieeeewwwwCCCCaaaallllllllbbbbaaaacccckkkk
  714.           for more information.
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.                                                                        PPPPaaaaggggeeee 11111111
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  729.  
  730.  
  731.  
  732.      ggggeeeettttCCCCoooolllloooorrrrMMMMooooddddeeeellll(((())))
  733.  
  734.           iflColorModel getColorModel()
  735.  
  736.  
  737.           Returns the color model of the display image.
  738.  
  739.      ggggeeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((())))
  740.  
  741.           ilStatus getColormap(iflColormap& cmap)
  742.  
  743.  
  744.           Returns the current colormap in _l_u_t. The colormap is used by
  745.           iiiillllXXXXDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg or iiiillllGGGGLLLLDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg, depending on the render mode.
  746.  
  747.      ggggeeeettttDDDDiiiissssppppllllaaaayyyy(((())))
  748.  
  749.           Display* getDisplay()
  750.  
  751.  
  752.           Returns the X Display currently being used.
  753.  
  754.      ggggeeeettttGGGGLLLLXXXXCCCCoooonnnntttteeeexxxxtttt(((())))
  755.  
  756.           GLXContext getGLXContext()
  757.  
  758.  
  759.           This method returns the OpenGL rendering context used by IL.  This
  760.           can be used to create display lists in a user context that can be
  761.           shared with the IL context, and thus used in the rendering
  762.           callbacks.  To do this the user context must be created specifying
  763.           the IL context as the _s_h_a_r_e_L_i_s_t parameter of ggggllllXXXXCCCCrrrreeeeaaaatttteeeeCCCCoooonnnntttteeeexxxxtttt().
  764.  
  765.      ggggeeeettttIIIILLLLDDDDiiiissssppppllllaaaayyyy(((())))
  766.  
  767.           Display* getILDisplay()
  768.  
  769.  
  770.           This method returns the internal Display* that IL uses.  This is not
  771.           intended for use outside of IL.
  772.  
  773.      ggggeeeettttLLLLoooocccc(((())))
  774.  
  775.           ilView* getLoc(float x, float y, float& ix, float& iy,
  776.                          int mode = ilLocIn)
  777.  
  778.  
  779.           This function finds the view at (_x, _y) and returns the corresponding
  780.           location in the image in _i_x and _i_y. If _i_l_L_o_c_I_n is passed in _m_o_d_e,
  781.           the location is returned in the input space of the image.  If
  782.           _i_l_L_o_c_O_u_t is passed in _m_o_d_e, the location is returned in the output
  783.           space of the image. For example, if an ilRotZoomIng is mapped to the
  784.  
  785.  
  786.  
  787.                                                                        PPPPaaaaggggeeee 11112222
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  795.  
  796.  
  797.  
  798.           view and _i_l_L_o_c_I_n is specified, _i_x and _i_y will correspond to the
  799.           location in the unzoomed image. However, if _i_l_L_o_c_O_u_t is specified,
  800.           _i_x and _i_y correspond to the location in the zoomed image.
  801.  
  802.      ggggeeeettttMMMMaaaarrrrggggiiiinnnn(((())))
  803.  
  804.           int getMargin()
  805.  
  806.  
  807.           Returns the current margin in pixels that is used for ffffiiiinnnnddddEEEEddddggggeeee().
  808.  
  809.      ggggeeeettttMMMMoooouuuusssseeee(((())))
  810.  
  811.           void getMouse(int& x, int& y)
  812.           void getMouse(int& x, int& y, iflOrientation orientation)
  813.  
  814.  
  815.           Returns the current XY location of the mouse. The mouse position is
  816.           set with sssseeeettttMMMMoooouuuusssseeee(((()))) and is updated by display operators that are
  817.           passed _i_l_R_e_l_V_a_l parameter mode. The values _x and _y, are returned for
  818.           the specified orientation. The first version, uses the current _e_v_e_n_t
  819.           orientation. This method is useful for some interactive
  820.           applications.
  821.  
  822.      ggggeeeettttNNNNuuuummmmVVVViiiieeeewwwwssss(((())))
  823.  
  824.           int getNumViews()
  825.  
  826.  
  827.           Returns the number of ilViews in the view stack. The background view
  828.           can not be accessed and is not included in the count.
  829.  
  830.      ggggeeeettttPPPPiiiixxxxeeeellll(((())))
  831.  
  832.           ilView* getPixel(int x, int y, iflPixel& pix)
  833.  
  834.  
  835.           Copies into _p_i_x the pixel value at coordinates (_x, _y), in ilDisplay
  836.           coordinates. The pixel value is obtained from _v_i_e_w.  If _v_i_e_w is
  837.           NULL, then the view at _x,_y is found first.
  838.  
  839.      ggggeeeettttPPPPoooossss(((())))
  840.  
  841.           void getPos(int& x, int& y)
  842.  
  843.  
  844.           Returns the current position of the ilDisplayImg within the display
  845.           window. ilDisplay creates a ilDisplayImg (X or GL) to perform the
  846.           actual rendering to the frame buffer. It is maintained at position
  847.           0, 0 within the display window.
  848.  
  849.  
  850.  
  851.  
  852.  
  853.                                                                        PPPPaaaaggggeeee 11113333
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  861.  
  862.  
  863.  
  864.      ggggeeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(((())))
  865.  
  866.           float getRoamLimit()
  867.  
  868.  
  869.           Returns the roam limit previously set with sssseeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt().  The roam
  870.           limit causes image movement to be limited in order to facilitate
  871.           smooth roaming with mmmmoooovvvveeeeIIIImmmmgggg() or mmmmoooovvvveeeeIIIImmmmggggIIIIddddxxxx(). The roam limit is
  872.           used to calculate the maximum roam rate in x and y for a given
  873.           direction.
  874.  
  875.      ggggeeeettttRRRRooooaaaammmmRRRRaaaatttteeee(((())))
  876.  
  877.           void getRoamRate(float& x, float& y)
  878.  
  879.  
  880.           Returns the horizontal and vertical roam rate in _x and _y.  If a roam
  881.           limit has been set with sssseeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(), then image movement may be
  882.           clipped when using mmmmoooovvvveeeeIIIImmmmgggg() or mmmmoooovvvveeeeIIIImmmmggggIIIIddddxxxx().  The returned values
  883.           give the number of pixels the image was moved in the x and y
  884.           directions. The roam rate is updated each time mmmmoooovvvveeeeIIIImmmmgggg() or
  885.           mmmmoooovvvveeeeIIIImmmmggggIIIIddddxxxx() is called.
  886.  
  887.      ggggeeeettttSSSSiiiizzzzeeee(((())))
  888.  
  889.           void getSize(int& x, int& y)
  890.  
  891.  
  892.           Returns the size of the ilDisplayImg into _x and _y.
  893.  
  894.      ggggeeeettttSSSSttttaaaattttuuuussss(((())))
  895.  
  896.           ilStatus getStatus()
  897.  
  898.  
  899.           Returns the current status. See /_u_s_r/_i_n_c_l_u_d_e/_i_l/_i_l_E_r_r_o_r._h for a list
  900.           of error codes.
  901.  
  902.      ggggeeeettttVVVViiiieeeewwww(((())))
  903.  
  904.           ilView* getView(ilImage* img)
  905.           ilView* getView(int index = 0)
  906.  
  907.  
  908.           Returns a pointer to the ilView that corresponds to _i_d_x in the view
  909.           stack, or the bottom-most ilView containing _i_m_g. If no ilView is
  910.           found, NULL is returned. Note that the back view can not be
  911.           accessed.
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.                                                                        PPPPaaaaggggeeee 11114444
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  927.  
  928.  
  929.  
  930.      ggggeeeettttVVVViiiieeeewwwwIIIInnnnddddeeeexxxx(((())))
  931.  
  932.           int getViewIndex(ilImage* img)
  933.           int getViewIndex(ilView* view)
  934.  
  935.  
  936.           Returns the index into the display's ilView corresponding to _v_i_e_w
  937.           or, the index of the bottom-most ilView containing _i_m_g.  If _v_i_e_w or
  938.           _i_m_g is not in the list, ilNoListIndex is returned.
  939.  
  940.      ggggeeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa(((())))
  941.  
  942.           void getVisibleArea(int& x, int& y, int& nx, int& ny)
  943.  
  944.  
  945.           Returns the current visible area. If the area is valid, then
  946.           painting is limited to this area. This feature is useful for
  947.           scrolled windows.  See sssseeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa() for more information.
  948.  
  949.      ggggeeeettttWWWWiiiinnnnddddoooowwww(((())))
  950.  
  951.           Window getWindow()
  952.  
  953.  
  954.           Returns the X Window currently being used.
  955.  
  956.      ggggeeeettttXXXXWWWWiiiinnnnddddoooowwwwIIIImmmmgggg(((())))
  957.  
  958.           ilXWindowImg* getXWindowImg()
  959.  
  960.  
  961.           This method returns the ilXWindowImg created by this object.  It is
  962.           used for all rendering operations.
  963.  
  964.      iiiissssAAAAuuuuttttooooAAAAbbbboooorrrrttttEEEEnnnnaaaabbbblllleeeedddd(((())))
  965.  
  966.           int isAutoAbortEnabled()
  967.  
  968.  
  969.           Returns TRUE if auto-abort is enabled, FALSE otherwise.  See
  970.           eeeennnnaaaabbbblllleeeeAAAAuuuuttttooooAAAAbbbboooorrrrtttt().
  971.  
  972.      iiiissssCCCCaaaallllllllbbbbaaaacccckkkkEEEEnnnnaaaabbbblllleeeedddd(((())))
  973.  
  974.           int isCallbackEnabled()
  975.  
  976.  
  977.  
  978.  
  979.           Returns _T_R_U_E if the post-render callback is enabled. Otherwise it
  980.           rerutns _F_A_L_S_E. See sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk() and eeeennnnaaaabbbblllleeeeCCCCaaaallllllllbbbbaaaacccckkkk().
  981.  
  982.  
  983.  
  984.  
  985.                                                                        PPPPaaaaggggeeee 11115555
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  993.  
  994.  
  995.  
  996.      iiiissssDDDDeeeeffffeeeerrrr(((())))
  997.  
  998.           int isDefer(ilView* view = NULL)
  999.  
  1000.  
  1001.           Returns the state of the defer flag for the specified view. If _v_i_e_w
  1002.           is NULL, the state of the defer flag on ilDisplay is returned.
  1003.           Returns TRUE if painting is deferred, FALSE otherwise.
  1004.  
  1005.      iiiissssDDDDoooouuuubbbblllleeeeBBBBuuuuffffffffeeeerrrr(((())))
  1006.  
  1007.           int isDoubleBuffer()
  1008.  
  1009.  
  1010.           Returns TRUE if double buffer mode is set, FALSE otherwise.
  1011.  
  1012.      iiiissssFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwwwEEEEnnnnaaaabbbblllleeeedddd(((())))
  1013.  
  1014.           int isFrontRedrawEnabled()
  1015.  
  1016.  
  1017.           This member function returns _T_R_U_E if front redraw is enabled,
  1018.           otherwise it returns _F_A_L_S_E. See also eeeennnnaaaabbbblllleeeeFFFFrrrroooonnnnttttRRRReeeeddddrrrraaaawwww().
  1019.  
  1020.      iiiissssNNNNoooopppp(((())))
  1021.  
  1022.           int isNop(ilView* view = NULL)
  1023.  
  1024.  
  1025.           Returns TRUE if the nop flag is set on the specified view, FALSE
  1026.           otherwise.  If view is NULL, then the view on the top of the stack
  1027.           is tested.
  1028.  
  1029.      iiiissssQQQQuuuueeeeuuuueeeeiiiinnnnggggEEEEnnnnaaaabbbblllleeeedddd(((())))
  1030.  
  1031.           int isQueueingEnabled()
  1032.  
  1033.  
  1034.           Returns TRUE if queued rendering is enabled, FALSE otherwise.  See
  1035.           eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg().
  1036.  
  1037.      iiiissssRRRRggggbbbb(((())))
  1038.  
  1039.           int isRgb()
  1040.  
  1041.  
  1042.           Returns the GL color mode: TRUE for RGBmode, FALSE for colormap.
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.                                                                        PPPPaaaaggggeeee 11116666
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1059.  
  1060.  
  1061.  
  1062.      iiiissssSSSSeeeelllleeeecccctttteeeedddd(((())))
  1063.  
  1064.           int isSelected(ilView* view)
  1065.  
  1066.  
  1067.           Returns TRUE if the specified view is selected, FALSE otherwise.
  1068.           When an ilView is selected, its nop flag is FALSE and its borders
  1069.           are enabled.
  1070.  
  1071.      iiiissssSSSStttteeeerrrreeeeoooo(((())))
  1072.  
  1073.           int isStereo()
  1074.  
  1075.  
  1076.           Returns TRUE if stereo viewing mode is available, FALSE otherwise.
  1077.           ilDisplay supports both monoscopic and stereoscopic views
  1078.           simultaneously within the same GL window. Stereo is only supported
  1079.           on InfiniteReality, RealityEngine and Impact graphics systems.
  1080.  
  1081.      mmmmaaaappppTTTTiiiilllleeee(((())))
  1082.  
  1083.           void mapTile(iflOrientation fromOrientation, iflTile2Dfloat& tile,
  1084.                        iflOrientation toOrientation=iflOrientation(0))
  1085.           void mapTile(iflOrientation fromOrientation, iflTile2Dint& tile,
  1086.                        iflOrientation toOrientation=iflOrientation(0))
  1087.  
  1088.  
  1089.           Maps the specified _t_i_l_e from the _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to the
  1090.           _t_o_O_r_i_e_n_t_a_t_i_o_n relative to the ilXWindowImg used by ilDisplay. By
  1091.           default, the orientation of ilDisplay (upper-left) is used for
  1092.           _t_o_O_r_i_e_n_t_a_t_i_o_n.
  1093.  
  1094.      mmmmaaaappppXXXXYYYY(((())))
  1095.  
  1096.           void mapXY(iflOrientation fromOrientation, float& x, float& y,
  1097.                      iflOrientation toOrientation=iflOrientation(0))
  1098.           void mapXY(iflOrientation fromOrientation, int& x, int& y,
  1099.                      iflOrientation toOrientation=iflOrientation(0))
  1100.  
  1101.  
  1102.           Maps _i_x and _i_y from _f_r_o_m_O_r_i_e_n_t_a_t_i_o_n to _t_o_O_r_i_e_n_t_a_t_i_o_n and returns the
  1103.           result in _o_x and _o_y. By default, the orientation of ilDisplay
  1104.           (upper-left) is used for _t_o_O_r_i_e_n_t_a_t_i_o_n.
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.                                                                        PPPPaaaaggggeeee 11117777
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1125.  
  1126.  
  1127.  
  1128.      mmmmoooovvvveeeeIIIImmmmgggg(((())))
  1129.  
  1130.           void moveImg(float x, float y, ilView* view = NULL,
  1131.                        int mode = ilRelVal)
  1132.           void moveImgIdx(float x, float y, ilView* view,
  1133.                        int idx, int mode)
  1134.  
  1135.  
  1136.           These functions move the image within the specified _v_i_e_w. If NULL is
  1137.           passed as _v_i_e_w, then the images are moved in all views in the stack
  1138.           (except those with nop flag set). The image is moved as specified by
  1139.           _x and _y. The _m_o_d_e controls how the function operates. If ilClip is
  1140.           passed in mode, the image position is clipped to prevent moving
  1141.           beyond the edge of the image. However, by default, the image can be
  1142.           moved beyond its edge, exposing the image's fill value. The view is
  1143.           painted after the image has been moved, unless ilDefer is passed in
  1144.           mode.
  1145.  
  1146.           The mode also controls how the _x and _y parameters are interpreted.
  1147.           If ilDelVal is passed in _m_o_d_e, x and y specify the change (delta) in
  1148.           the image position. If ilAbsVal is specified, x and y specify the
  1149.           new position of the image. Note that the image position corresponds
  1150.           to the upper-left corner of the view, rather than the origin of the
  1151.           image.
  1152.  
  1153.           If ilRelVal is passed in _m_o_d_e, then x and y are interpreted relative
  1154.           to a starting xy coordinate maintained within ilDisplay.  Typically,
  1155.           ilRelVal is used for interactive applications that use the mouse to
  1156.           control movement. The sssseeeettttMMMMoooouuuusssseeee() function on ilDisplay must be
  1157.           called to set the starting xy location. Then the difference between
  1158.           the starting xy location and the specified xy location is used to
  1159.           adjust the image position. The starting xy location is then updated.
  1160.           Specifying ilOldRel has the same effect as ilRelVal except that the
  1161.           starting xy location is not updated.
  1162.  
  1163.           The portion of the image being displayed resides in the cache of the
  1164.           input image. So as the image is moved within the view, old pages are
  1165.           discarded and new pages are brought into the cache.
  1166.  
  1167.           Note that if a roam limit has been set with sssseeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(), that
  1168.           image movement may be clipped. See setRoamLimit() for more
  1169.           information.
  1170.  
  1171.           For those views displaying multiple images (i.e., iiiillllSSSStttteeeerrrreeeeooooVVVViiiieeeewwww), the
  1172.           mmmmoooovvvveeeeIIIImmmmggggIIIIddddxxxx() iiiillllDDDDiiiissssppppllllaaaayyyyMMMMoooovvvveeeeIIIImmmmggggIIIIddddxxxx() function allows independent
  1173.           movement of each image within the view. For stereo views, the valid
  1174.           values for _i_d_x are ilViewImgPairLeft and ilViewImgPairRight.
  1175.  
  1176.      mmmmoooovvvveeeeVVVViiiieeeewwww(((())))
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.                                                                        PPPPaaaaggggeeee 11118888
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1191.  
  1192.  
  1193.  
  1194.           void moveView(int x, int y, ilView* view = NULL, int mode = ilRelVal)
  1195.  
  1196.  
  1197.           This function moves the specified view within the display. If NULL
  1198.           is passed, then the image is moved in all views in the stack (except
  1199.           those with nop flag set). The image is moved as specified by _x and
  1200.           _y. The _m_o_d_e controls how the function operates. If ilClip is passed
  1201.           in mode, the view position is clipped to prevent moving beyond the
  1202.           edge of the display. However, by default, the view can be moved
  1203.           beyond the edge of the display. The view is painted after the view
  1204.           has been moved, unless ilDefer is passed in mode. The mode also
  1205.           controls how the _x and _y parameters are interpreted.
  1206.  
  1207.           If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in
  1208.           the view position. If ilAbsVal is specified, x and y specify the new
  1209.           position of the view. Note that the view position corresponds to the
  1210.           upper-left corner of the view relative to the upper-left corner of
  1211.           the display.
  1212.  
  1213.           If ilRelVal is passed in _m_o_d_e, then x and y are interpreted relative
  1214.           to a starting xy coordinate maintained within ilDisplay. Typically,
  1215.           ilRelVal is used for interactive applications that use the mouse to
  1216.           control movement. The sssseeeettttMMMMoooouuuusssseeee() function on ilDisplay must be
  1217.           called to set the starting _x_y location. Then the difference between
  1218.           the starting _x_y location and the specified _x_y location is used to
  1219.           adjust the view position. The starting _x_y location is then updated.
  1220.           Specifying ilOldRel has the same effect as ilRelVal except that the
  1221.           starting _x_y location is not updated.
  1222.  
  1223.      ppppaaaaiiiinnnntttt(((())))
  1224.  
  1225.           void paint(ilView* view = NULL, int mode = 0)
  1226.           void paint(int x, int y, int nx, int ny,
  1227.                      iflOrientation orientation = iflUpperLeftOrigin,
  1228.                      ilView* view = NULL, int mode = 0)
  1229.  
  1230.  
  1231.           This function paints the specified view if it needs to be painted.
  1232.           If _N_U_L_L is passed, then all views are painted if needed (except
  1233.           those with nop flag set). If an area is specified with origin _x, _y
  1234.           and size _n_x, _n_y then only the specified area is painted. The area
  1235.           parameters are interpreted based on the _o_r_i_e_n_t_a_t_i_o_n specified.
  1236.  
  1237.           If iiiillllPPPPaaaaiiiinnnnttttEEEExxxxppppoooosssseeee is passed in _m_o_d_e, the view is forced to be
  1238.           painted. If iiiillllDDDDeeeeffffeeeerrrr is passed in _m_o_d_e, or if the view is deferred
  1239.           (see sssseeeettttDDDDeeeeffffeeeerrrr()), then the view is not be painted. The view
  1240.           position, size, and image position are unaffected.
  1241.  
  1242.      ppppoooopppp(((())))
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.                                                                        PPPPaaaaggggeeee 11119999
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1257.  
  1258.  
  1259.  
  1260.           void pop(ilView* view = NULL, int count = 0)
  1261.  
  1262.  
  1263.           Pops _v_i_e_w up _c_o_u_n_t positions in the stack. If _c_o_u_n_t is zero, the
  1264.           view is popped to the top of the stack. If _v_i_e_w is NULL, the bottom
  1265.           view is popped.
  1266.  
  1267.      ppppuuuusssshhhh(((())))
  1268.  
  1269.           void push(ilView* view = NULL, int count = 0)
  1270.  
  1271.  
  1272.           Pushes _v_i_e_w down _c_o_u_n_t positions in the stack. If _c_o_u_n_t is zero, the
  1273.           view is pushed to the bottom of the stack. If _v_i_e_w is NULL, the top
  1274.           view is pushed.
  1275.  
  1276.      qqqqPPPPaaaaiiiinnnntttt(((())))
  1277.  
  1278.           void qPaint(ilMpNode* parent, ilView* view = NULL, int mode = 0,
  1279.                       ilMpManager** pMgr = NULL)
  1280.           void qPaint(ilMpNode* parent, int x, int y, int nx, int ny,
  1281.                       iflOrientation orientation = iflUpperLeftOrigin,
  1282.                       ilView* view = NULL, int mode = 0,
  1283.                       ilMpManager** pMgr = NULL)
  1284.  
  1285.  
  1286.           This function is identical to ppppaaaaiiiinnnntttt() except that the paint
  1287.           operation is queued and the function returns immediately. This
  1288.           allows the application thread to return to processing events and
  1289.           thus provide a responsive UI. See iiiillllMMMMppppMMMMaaaannnnaaaaggggeeeerrrr and iiiillllMMMMppppNNNNooooddddeeee for more
  1290.           information.
  1291.  
  1292.           If an iiiillllMMMMppppNNNNooooddddeeee is passed as _p_a_r_e_n_t, the paint requests are queued on
  1293.           the parent node. If _p_M_g_r is specified, the iiiillllMMMMppppMMMMaaaannnnaaaaggggeeeerrrr created to
  1294.           queue the paint requests is returned. This allows an application to
  1295.           setup a completion callback or wait for the queued requests to
  1296.           complete.
  1297.  
  1298.      rrrreeeeddddrrrraaaawwww(((())))
  1299.  
  1300.           void redraw(int mode = ilDefault)
  1301.           void redraw(int x, int y, int nx, int ny,
  1302.                       iflOrientation orientation = iflUpperLeftOrigin,
  1303.                       int mode = ilDefault)
  1304.  
  1305.  
  1306.           Resizes the display and back view to the size of the display window
  1307.           and repaints all views. If an area is specified with origin _x, _y and
  1308.           size _n_x, _n_y then only the specified area is painted.  If iiiillllDDDDeeeeffffeeeerrrr is
  1309.           passed in _m_o_d_e, the display and back view are resized but not
  1310.           painted and all views are unaffected.  This function is useful when
  1311.           an expose event occurs.
  1312.  
  1313.  
  1314.  
  1315.                                                                        PPPPaaaaggggeeee 22220000
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1323.  
  1324.  
  1325.  
  1326.      rrrreeeemmmmoooovvvveeeeVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  1327.  
  1328.           ilStatus removeViewChangeCallback(ilCallback* cb)
  1329.  
  1330.  
  1331.           This method removes a view add/delete callback previously added with
  1332.           aaaaddddddddVVVViiiieeeewwwwCCCChhhhaaaannnnggggeeeeCCCCaaaallllllllbbbbaaaacccckkkk().
  1333.  
  1334.      ssssaaaavvvveeee(((())))
  1335.  
  1336.           ilStatus save(ilImage* img, int x = 0, int y = 0, int mode = 0)
  1337.  
  1338.  
  1339.           This function saves a region of the display area into the ilImage
  1340.           specified by _i_m_g. The region that is saved starts at the location
  1341.           specified by _x and _y and is the size of _i_m_g. By default, borders are
  1342.           not painted. However, if ilPaintBorder is passed in _m_o_d_e, then
  1343.           borders are painted on views with borders turned on.
  1344.  
  1345.      sssseeeelllleeeecccctttt(((())))
  1346.  
  1347.           void select(ilView* view = NULL)
  1348.  
  1349.  
  1350.           Selects the specified view. If NULL is passed, then all views in the
  1351.           view stack are selected. When a view is selected, its nop flag is
  1352.           FALSE and its borders are enabled.
  1353.  
  1354.      sssseeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnndddd(((())))
  1355.  
  1356.           void setBackground(float red, float green, float blue)
  1357.  
  1358.  
  1359.           Sets the ilDisplay's background color to that specified by _r_e_d,
  1360.           _g_r_e_e_n and _b_l_u_e. The values are assumed to be normalized to the range
  1361.           0.0 to 1.0.
  1362.  
  1363.      sssseeeettttBBBBaaaacccckkkkggggrrrroooouuuunnnnddddDDDDiiiirrrrttttyyyy(((())))
  1364.  
  1365.           void setBackgroundDirty()
  1366.  
  1367.  
  1368.           Indicates that the ilDisplay's background needs to be repainted for
  1369.           some external reason (e.g. graphics drawn on top that need to be
  1370.           updated).
  1371.  
  1372.      sssseeeettttBBBBoooorrrrddddeeeerrrrCCCCoooolllloooorrrr(((())))
  1373.  
  1374.           void setBorderColor(float red, float green, float blue)
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.                                                                        PPPPaaaaggggeeee 22221111
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1389.  
  1390.  
  1391.  
  1392.           Sets the border color to _r_e_d, _g_r_e_e_n and _b_l_u_e on all views in the
  1393.           stack. The values are assumed to be normalized to the range 0.0 to
  1394.           1.0.  See also iiiillllVVVViiiieeeewwww.
  1395.  
  1396.      sssseeeettttBBBBoooorrrrddddeeeerrrrSSSSttttyyyylllleeee(((())))
  1397.  
  1398.           void setBorderStyle(int style = ilViewBdrSolidLines)
  1399.  
  1400.  
  1401.           Sets the border style on all views, to that specified by _s_t_y_l_e. By
  1402.           default, view borders are set to iiiillllVVVViiiieeeewwwwBBBBddddrrrrSSSSoooolllliiiiddddLLLLiiiinnnneeeessss.  See iiiillllVVVViiiieeeewwww
  1403.           for more information.
  1404.  
  1405.      sssseeeettttBBBBoooorrrrddddeeeerrrrWWWWiiiiddddtttthhhh(((())))
  1406.  
  1407.           void setBorderWidth(int width)
  1408.  
  1409.  
  1410.           Sets the border width to _w_i_d_t_h on all views in the stack.
  1411.  
  1412.      sssseeeettttBBBBoooorrrrddddeeeerrrrssss(((())))
  1413.  
  1414.           void setBorders(int enable, int mode = ilDefault)
  1415.  
  1416.  
  1417.           Sets the border flag on all views in the stack to the specified
  1418.           value.  If _f_l_a_g is TRUE, then borders are turned on, otherwise
  1419.           borders are turned off. Borders will be painted or erased unless
  1420.           defer mode has been set.
  1421.  
  1422.      sssseeeettttCCCCaaaallllllllbbbbaaaacccckkkk(((())))
  1423.  
  1424.           void setCallback(ilCallback* prepare, ilCallback* render,
  1425.                            ilCallback* finish = NULL)
  1426.  
  1427.  
  1428.           Sets the post-render callback which is associated with the back
  1429.           view.  The callback is called after all views have been rendered.
  1430.           There are actually three callbacks: _p_r_e_p_a_r_e, _r_e_n_d_e_r and _f_i_n_i_s_h.  The
  1431.           prepare callback is called by one of the compute threads to perform
  1432.           any pre-rendering allocations or computations. Then the render
  1433.           callback is called by the IL's render thread to perform actual
  1434.           rendering into the display window. This callback must execute as
  1435.           efficiently as possible to achieve maximum performance. It is called
  1436.           by the IL's render thread to minimize context switching. Any state
  1437.           changes made by the callback must be restored prior to completion.
  1438.           Finally, the finish callback is called by one of the compute threads
  1439.           to perform any de-allocation or cleanup required. The prepare and
  1440.           finish callbacks may be set to NULL if not required. See iiiillllVVVViiiieeeewwww and
  1441.           iiiillllVVVViiiieeeewwwwCCCCaaaallllllllbbbbaaaacccckkkk for more information.
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.                                                                        PPPPaaaaggggeeee 22222222
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1455.  
  1456.  
  1457.  
  1458.      sssseeeettttCCCCoooolllloooorrrrmmmmaaaapppp(((())))
  1459.  
  1460.           void setColormap(iflColormap& cmap)
  1461.  
  1462.  
  1463.           Sets the colormap to the ilLut specified by _c_m_a_p. The colormap is
  1464.           used by iiiillllXXXXDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg or iiiillllGGGGLLLLDDDDiiiissssppppllllaaaayyyyIIIImmmmgggg depending on the render
  1465.           mode. Note that this will override the iiiillllDDDDeeeeffffaaaauuuullllttttCCCCmmmmaaaapppp mode passed to
  1466.           the constructor.
  1467.  
  1468.      sssseeeettttDDDDeeeeffffeeeerrrr(((())))
  1469.  
  1470.           void setDefer(int def, ilView* view = NULL)
  1471.  
  1472.  
  1473.           Sets the state of the defer flag on the specified view. If _v_i_e_w is
  1474.           NULL, then the defer flag on ilDisplay is set. If _d_e_f_e_r is TRUE,
  1475.           then painting does not occur or is deferred. When painting is
  1476.           deferred, changes to a view's position, size or image position are
  1477.           accumulated until the view can be painted. Note that ilDisplay can
  1478.           be deferred or each individual ilView can be deferred.
  1479.  
  1480.      sssseeeettttLLLLoooocccc(((())))
  1481.  
  1482.           ilView* setLoc(float ix, float iy, float x, float y,
  1483.                          int mode = ilLocIn)
  1484.  
  1485.  
  1486.           This function finds the view at xy and sets the location in the
  1487.           image specified by _i_x and _i_y to the location in the display
  1488.           specified by _x and _y. The image is moved as needed to relocate the
  1489.           specified point. If iiiillllLLLLooooccccIIIInnnn is passed in _m_o_d_e, the location is found
  1490.           in the input space of the image.  If iiiillllLLLLooooccccIIIInnnn is passed in _m_o_d_e, the
  1491.           location is found in the output space of the image.  For example, if
  1492.           an ilRotZoomIng is mapped to the view and ilLocIn is specified, _i_x
  1493.           and _i_y correspond to the location in the unrotated image. However,
  1494.           if ilLocOut is specified, _i_x and _i_y correspond to the location in
  1495.           the rotated image. The relocation can be accomplished by moving
  1496.           either the image or the view. If iiiillllLLLLooooccccVVVViiiieeeewwww is specified then the
  1497.           view is moved, alternatively if iiiillllLLLLooooccccIIIImmmmgggg is specified (default) then
  1498.           the image is moved.
  1499.  
  1500.      sssseeeettttMMMMaaaarrrrggggiiiinnnn(((())))
  1501.  
  1502.           void setMargin(int margin)
  1503.  
  1504.  
  1505.           Sets the default margin to the number of pixels specified in _m_a_r_g_i_n.
  1506.           This margin is used by ffffiiiinnnnddddEEEEddddggggeeee() if no margin is specified.
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.                                                                        PPPPaaaaggggeeee 22223333
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1521.  
  1522.  
  1523.  
  1524.      sssseeeettttMMMMooooddddeeee(((())))
  1525.  
  1526.           void setMode(int mode = 0)
  1527.  
  1528.  
  1529.           Sets the display mode as specified by _m_o_d_e. This display mode is
  1530.           added to the mode used to create new views with aaaaddddddddVVVViiiieeeewwww().  For
  1531.           example, if ilDefer is set in the display mode, then ilDefer will be
  1532.           added to the mode passed to addView().
  1533.  
  1534.      sssseeeettttMMMMoooouuuusssseeee(((())))
  1535.  
  1536.           void setMouse(int x, int y, int mode = 0)
  1537.  
  1538.  
  1539.           Sets the starting mouse location to the coordinate _x, _y.  Note that
  1540.           x and y are interpreted in the current event space, which is
  1541.           determined by the type of window (X or GL) being used.  This method
  1542.           is typically used to preset mouse values to initialize an
  1543.           interactive display operation loop such as moving a view.
  1544.  
  1545.      sssseeeettttNNNNoooopppp(((())))
  1546.  
  1547.           void setNop(int noOp, ilView* view = NULL)
  1548.  
  1549.  
  1550.           Sets NOP state for the specified view. If view is NULL, then all
  1551.           views are set. If set to TRUE, display operations are disabled on
  1552.           this view until the flag is set to FALSE.
  1553.  
  1554.      sssseeeettttPPPPiiiixxxxeeeellll(((())))
  1555.  
  1556.           ilView* setPixel(int x, int y, iflPixel& pix)
  1557.  
  1558.  
  1559.           Sets the pixel located _x and _y to the value specified in _p_i_x.  First
  1560.           the view at _x,_y is found using ffffiiiinnnnddddVVVViiiieeeewwww() and sssseeeettttPPPPiiiixxxxeeeellll() is called
  1561.           on that ilView. See the ilView man page for more information.
  1562.  
  1563.      sssseeeettttRRRRooooaaaammmmLLLLiiiimmmmiiiitttt(((())))
  1564.  
  1565.           void setRoamLimit(float maxRoamDel = 0.0)
  1566.  
  1567.  
  1568.           Sets the maximum number of pixels an image can move.  The roam limit
  1569.           causes image movement to be limited in order to facilitate smooth
  1570.           roaming with mmmmoooovvvveeeeIIIImmmmgggg(). The roam limit is used to calculate the
  1571.           maximum roam rate in x and y for a given direction. If _m_a_x_R_o_a_m_D_e_l is
  1572.           set to 0.0 or negative, the roam limit is disabled.
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.                                                                        PPPPaaaaggggeeee 22224444
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1587.  
  1588.  
  1589.  
  1590.      sssseeeettttSSSSttttaaaattttuuuussss(((())))
  1591.  
  1592.           void setStatus(ilStatus stat)
  1593.  
  1594.  
  1595.           Sets the status of ilDisplay to the ilStatus specified in _s_t_a_t.  See
  1596.           also ggggeeeettttSSSSttttaaaattttuuuussss().
  1597.  
  1598.      sssseeeettttVVVViiiissssiiiibbbblllleeeeAAAArrrreeeeaaaa(((())))
  1599.  
  1600.           void setVisibleArea(int x = 0, int y = 0, int nx = 0,
  1601.                               int ny = 0)
  1602.  
  1603.  
  1604.           Sets the visible area within the display window in order to
  1605.           optimally support scrolled windows. The origin of the area is
  1606.           specified as _x, _y and the size of the area is specified by _n_x, _n_y.
  1607.           This causes painting to be clipped to the visual area.  If _0 is
  1608.           passed for all area parameters then this function is disabled.
  1609.  
  1610.      sssseeeettttWWWWiiiinnnnddddoooowwww(((())))
  1611.  
  1612.           void setWindow(Window win, int mode = ilDefault)
  1613.  
  1614.  
  1615.           Sets the display window to the X window specified in _w_i_n and
  1616.           reinitializes ilDisplay. The render mode and display mode are
  1617.           specified as in the constructor. This function is used to change the
  1618.           configuration of the display window used by ilDisplay.
  1619.  
  1620.      sssspppplllliiiitttt(((())))
  1621.  
  1622.           void split(int mode = ilAbsSplit|ilRowSplit|ilColSplit)
  1623.  
  1624.  
  1625.           This function repositions and resizes all views in the view stack so
  1626.           that all views are visible. The _m_o_d_e specifies how the views are
  1627.           arranged. Starting at the bottom of the view stack, views are placed
  1628.           starting at the upper left corner of the display.  The various split
  1629.           modes are listed below:
  1630.  
  1631.           _i_l_A_b_s_S_p_l_i_t All images are aligned based on the align mode
  1632.                      specified (ilBottomLeft by default).
  1633.  
  1634.           _i_l_R_e_l_S_p_l_i_t All images are positioned relative to the view
  1635.                      position.
  1636.  
  1637.           _i_l_R_o_w_S_p_l_i_t The views are arranged in rows.
  1638.  
  1639.           _i_l_C_o_l_S_p_l_i_t The views are arranged in columns.
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.                                                                        PPPPaaaaggggeeee 22225555
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1653.  
  1654.  
  1655.  
  1656.           _i_l_P_a_c_k_S_p_l_i_t Views sizes are clipped to the size of the image and
  1657.                      packed together.
  1658.  
  1659.           The relative split mode causes images to be positioned so that the
  1660.           image continues from one view to the next.  Any combination of these
  1661.           split modes can be used. For example, if
  1662.           ilRowSplit | ilColSplit is specified in _m_o_d_e, views are arranged
  1663.           into an equal number of rows and columns.
  1664.  
  1665.      sssswwwwaaaapppp(((())))
  1666.  
  1667.           void swap(ilView* view1, ilView* view2)
  1668.  
  1669.  
  1670.           Swaps the positions in the view stack of the two views specified.
  1671.  
  1672.      ssssyyyynnnnccccPPPPaaaaiiiinnnntttt(((())))
  1673.  
  1674.           void syncPaint()
  1675.  
  1676.  
  1677.           This method will not return until all queued rendering requests are
  1678.           completed.  See eeeennnnaaaabbbblllleeeeQQQQuuuueeeeuuuueeeeiiiinnnngggg().
  1679.  
  1680.      uuuunnnnsssseeeelllleeeecccctttt(((())))
  1681.  
  1682.           void unselect(ilView* view = NULL)
  1683.  
  1684.  
  1685.           Unselects the specified view. If NULL is passed, then all views in
  1686.           the view stack are unselected (except those with nop flag set).
  1687.           When a view is unselected, its nop flag is TRUE and its borders are
  1688.           disabled.
  1689.  
  1690.      uuuuppppddddaaaatttteeee(((())))
  1691.  
  1692.           void update(int x = 0, int y = 0, int nx = 0, int ny = 0,
  1693.                       float imgX = 0, float imgY = 0, ilView* view = NULL,
  1694.                       int mode = ilDelVal)
  1695.  
  1696.  
  1697.           This function allows the view position, view size and image position
  1698.           to be adjusted for the specified view. If no view is specified, then
  1699.           all views are updated. The view is moved as specified by _x and _y.
  1700.           The view size is adjusted as specified by _n_x and _n_y. The image is
  1701.           moved within the view as specified by _i_m_g_X and _i_m_g_Y. All three
  1702.           adjustments are clipped if ilClip is passed in _m_o_d_e. After all three
  1703.           adjustments are made the view is painted, unless ilDefer is passed
  1704.           in _m_o_d_e.
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.                                                                        PPPPaaaaggggeeee 22226666
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1719.  
  1720.  
  1721.  
  1722.           If ilDelVal is passed in _m_o_d_e, all parameters specify the change
  1723.           (delta) in position and size. If ilAbsVal is specified, all
  1724.           parameters specify the absolute position or size. If ilRelVal is
  1725.           passed in _m_o_d_e, then all parameters are interpreted relative to a
  1726.           starting xy coordinate maintained within ilDisplay. ilRelVal is not
  1727.           recommended for use with this operator. See moveView and moveImg for
  1728.           more details.
  1729.  
  1730.      uuuuppppddddaaaatttteeeeWWWWiiiinnnnddddoooowwww(((())))
  1731.  
  1732.           void updateWindow()
  1733.  
  1734.  
  1735.           This function is used to reinitialize the ilDisplay when the
  1736.           configuration of the display window has been changed. For example,
  1737.           if the GL window is changed from RGB mode to color index,
  1738.           uuuuppppddddaaaatttteeeeWWWWiiiinnnnddddoooowwww() must be called.
  1739.  
  1740.      wwwwiiiippppeeee(((())))
  1741.  
  1742.           void wipe(int x, int y, ilView* view = NULL, int mode = ilRelVal)
  1743.  
  1744.  
  1745.           This function moves one or more edges on the specified view. If NULL
  1746.           is passed, then all views are wiped (except those with nop flag
  1747.           set). The edge or edges to move are specified in _m_o_d_e. For example,
  1748.           if ilRightEdge is passed in mode, the right edge of the view moves
  1749.           as specified by _x and _y. In addition, if ilTopEdge | ilRightEdge (or
  1750.           ilTopRight) is specified, then the upper right corner is moved. Note
  1751.           that the value returned by ffffiiiinnnnddddEEEEddddggggeeee() can be used directly.
  1752.  
  1753.           In general, a wipe operation resizes the view. However, if ilAllEdge
  1754.           is passed in mode, then all edges of the view are moved and the view
  1755.           size is unchanged.  This operation is referred to as an _i_n_s_e_t - the
  1756.           image is stationary and the view moves. This is the opposite of
  1757.           moving the image within the view. When comparing images, wiping is
  1758.           very useful.
  1759.  
  1760.           If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in
  1761.           the image position. If ilAbsVal is specified, _x and _y specify the
  1762.           new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and
  1763.           _y are interpreted relative to a starting _x_y coordinate maintained
  1764.           within ilDisplay.
  1765.  
  1766.           If ilClip is passed in _m_o_d_e, the the edge is not allowed to move
  1767.           beyond the edge of the image. However, by default the edge can be
  1768.           moved beyond the edge of the image, exposing the image's fill value.
  1769.           If ilDefer is passed in _m_o_d_e, then the view is not painted after the
  1770.           operation.
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.                                                                        PPPPaaaaggggeeee 22227777
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1785.  
  1786.  
  1787.  
  1788.      wwwwiiiippppeeeeSSSSiiiizzzzeeee(((())))
  1789.  
  1790.           void wipeSize(int x, int y, ilView* view = NULL,
  1791.                         int mode = ilDelVal|ilTopRight)
  1792.  
  1793.  
  1794.           This function moves an edge or corner and the opposite edge or
  1795.           corner on the specified view. If NULL is passed, then all views in
  1796.           the view stack are affected (except those with nop flag set).  The
  1797.           edge or corner passed in _m_o_d_e is moved as specified by _x and _y. In
  1798.           addition, the opposite edge or corner is moved in the opposite
  1799.           direction. This causes the view to grow or shrink by moving opposite
  1800.           edges or corners. For example, if the right edge is moved right by
  1801.           ten pixels, the left edge is also moved left by ten pixels. Note
  1802.           that the value returned by ffffiiiinnnnddddEEEEddddggggeeee(((()))) can be used directly.
  1803.  
  1804.           If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in
  1805.           the image position. If ilAbsVal is specified, _x and _y specify the
  1806.           new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and
  1807.           _y are interpreted relative to a starting _x_y coordinate maintained
  1808.           within ilDisplay.
  1809.  
  1810.      wwwwiiiippppeeeeSSSSpppplllliiiitttt(((())))
  1811.  
  1812.           void wipeSplit(int x, int y, int mode = ilRelVal)
  1813.  
  1814.  
  1815.           This function moves the edge on all views, found by calling
  1816.           ffffiiiinnnnddddEEEEddddggggeeee(((()))) on ilDisplay. All of these edges are moved as specified
  1817.           by _x and _y. For example, if two views are displayed side-by-side,
  1818.           the right edge of the left view and the left edge of the right view
  1819.           can be moved simultaneously. This is useful after a split operation.
  1820.  
  1821.           If ilDelVal is passed in _m_o_d_e, _x and _y specify the change (delta) in
  1822.           the image position. If ilAbsVal is specified, _x and _y specify the
  1823.           new position of the image. If ilRelVal is passed in _m_o_d_e, then _x and
  1824.           _y are interpreted relative to a starting _x_y coordinate maintained
  1825.           within ilDisplay.
  1826.  
  1827. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1828.      ilXWindowImg, ilView, ilViewIter, <il/ilDisplayDefs.h>
  1829.  
  1830.  
  1831. NNNNOOOOTTTTEEEESSSS
  1832.      Many display operators take a _m_o_d_e parameter which is a bit-wise
  1833.      inclusive OR of various flags defined in ilDisplayDefs.h. These flags are
  1834.      interpreted based on which operator is called. For example, iiiillllCCCCeeeennnntttteeeerrrr can
  1835.      be used to align a view or can be used to locate  the center of a view.
  1836.  
  1837.      All views in the view stack are deleted when ilDisplay is deleted.
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.                                                                        PPPPaaaaggggeeee 22228888
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850. iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))       IIIImmmmaaaaggggeeeeVVVViiiissssiiiioooonnnn LLLLiiiibbbbrrrraaaarrrryyyy CCCC++++++++ RRRReeeeffffeeeerrrreeeennnncccceeee MMMMaaaannnnuuuuaaaallll       iiiillllDDDDiiiissssppppllllaaaayyyy((((3333))))
  1851.  
  1852.  
  1853.  
  1854.      ilViewIter can be used to iterate through the view stack. It is declared
  1855.      in _i_l_D_i_s_p_l_a_y._h
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.                                                                        PPPPaaaaggggeeee 22229999
  1910.  
  1911.  
  1912.  
  1913.